const { json } = require('express');
const fs = require('fs');
const path = require('path');

module.exports = {
    // 查看
    read: function () {
        return new Promise(function (resolve, reject) {
            fs.readFile(path.join(__dirname, '/temperature.json'), function (error, data) {
                if (error) {
                    reject(error)
                } else {
                    resolve(JSON.parse(data))
                }
            })
        })
    },
    // 单个查询
    query: function (userId) {
        return new Promise(function (resolve, reject) {
            fs.readFile(path.join(__dirname, '/temperature.json'), function (error, data) {
                if (error) {
                    reject(error)
                } else {
                    resolve(data=JSON.parse(data).find(item => Number(item.userId) == userId))
                }
            })
        })
    },
    // 增加
    create: function (obj) {
        return new Promise(function (resolve, reject) {
            fs.readFile(path.join(__dirname, './temperature.json'), 'utf-8', function (error, data) {
                if (error) {
                    reject(error)
                } else {
                    let jsonData = data.toString();
                    jsonData = JSON.parse(jsonData);
                    jsonData.map(item => {
                        if(Number(item.userId) == obj.userId){
                            for(const key in obj){
                                if(Object.prototype.hasOwnProperty.call(obj, key)){   
                                    item[key] = obj[key]
                                }
                            }
                        }
                       return item
                    })
                    const str = JSON.stringify(jsonData, null, 1);
                    fs.writeFile(path.join(__dirname, './temperature.json'), str, function (err) {
                        if (err) {
                            reject(error)
                        } else {
                            resolve(JSON.parse(data))
                        }
                    })
                }
            })
        })
    },
    // 修改
    update: function (obj) {
        return new Promise(function (resolve, reject) {
            fs.readFile(path.join(__dirname, './temperature.json'), 'utf-8', function (error, data) {
                if (error) {
                    reject(error)
                } else {
                    let jsonData = data.toString();
                    jsonData = JSON.parse(jsonData);
                    jsonData.map(item => {
                        if (String(item.userId) == String(obj.userId)) {
                            // item.master = M
                            // if(F){item.F = F}
                            // else if(S){item.S = S}
                            // else if(T){item.T =T} 
                            for(const key in obj){
                                if(Object.prototype.hasOwnProperty.call(obj, key)){
                                    item[key] = obj[key]
                                }
                            }
                        }
                        return item
                    })
                    const str = JSON.stringify(jsonData, null, 1)
                    fs.writeFile(path.join(__dirname, './temperature.json'), str, function (err) {
                        if (err) {
                            reject(error)
                        } else {
                            resolve(JSON.parse(data))
                        }
                    })
                }
            })
        })
    },
    // 删除
    delete: function (userId) {
        return new Promise(function (resolve, reject) {
            fs.readFile(path.join(__dirname, './temperature.json'), 'utf-8', function (error, data) {
                if (error) {
                    reject(error)
                } else {
                    let jsonData = data.toString();
                    jsonData = JSON.parse(jsonData);
                    // jsonData.filter(item => {
                    //     if (Number(item.userId) != userId) {
                    //         return item
                    //     }
                    // })
                    jsonData = jsonData.filter(item => Number(item.userId) != userId)       
                    const str = JSON.stringify(jsonData, null, 1);
                    fs.writeFile(path.join(__dirname, './temperature.json'), str, function (err) {
                        if (err) {
                            reject(error)
                        } else {
                            resolve(JSON.parse(data))
                        }
                    })
                }
            })
        })
    },
}